"""
415. 字符串相加
简单
相关标签
相关企业
给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式。



示例 1：

输入：num1 = "11", num2 = "123"
输出："134"
示例 2：

输入：num1 = "456", num2 = "77"
输出："533"
示例 3：

输入：num1 = "0", num2 = "0"
输出："0"




提示：

1 <= num1.length, num2.length <= 104
num1 和num2 都只包含数字 0-9
num1 和num2 都不包含任何前导零
"""
import math
import sys


class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        sys.set_int_max_str_digits(100000)
        return str(Solution.strtoint(num1)+Solution.strtoint(num2))

    @staticmethod
    def strtoint(s: str) -> int:
        count = 0
        for i in range(len(s)):
            n = ord(s[i]) - ord('0')
            # v = n * math.pow(10, len(s) - i - 1)
            # count += v
            # 原来数乘以10，就相当于把数字整体向左移动一位并加一个0，例如12->120 此时加上n，即空出来的位置上加上n（0<=n<9）
            count = count*10 +n
        return count


if __name__ == '__main__':
    print(Solution().addStrings('9333852702227987','85731737104263'))
    # print(Solution.strtoint('9333852702227987'))